/**
 * Created by Antony han on 2017/6/12.
 */
import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)
const state = {
  token: ''
}
const getters = {
  getToken: (state) => {
    var token = state.token || sessionStorage.getItem('_token') || '';
    try {
      return JSON.parse(token);
    } catch (e) {
      return '';
    }
  }
}
const mutations = {
  setToken (state, token) {
    sessionStorage.setItem('_token', JSON.stringify(token));
    state.token = JSON.stringify(token);
  },
  removeToken (state) {
    sessionStorage.removeItem('_token');
    state.token = '';
  }
}
const actions = {
  setToken (context, token) {
    context.commit('setToken', token);
  },
  removeToken (context) {
    context.commit('removeToken');
  }
}
// console.log('====Q######=')
// console.log(getters)
export default new Vuex.Store({
  strict: true, // 严格模式
  state, // 单一状态树
  getters, // 类似computed方法 store的计算方法
  mutations, // 类似于事件的状态变化 mutation 都是同步事务
  actions // 类似于 mutation, 提交的是 mutation，而不是直接变更状态 异步
})
